C++ DLL 链接 Unresolved external
全部标签 我正在尝试在nsis安装程序中使用regsvr32注册DLL(目前没有静默):Exec'"$SYSDIR\regsvr32.exe""$SYSDIR\mp4mux.dll"'Exec'"$SYSDIR_32bit\regsvr32.exe""$SYSDIR_32bit\mp4mux.dll"'它显示DLL已注册的弹出窗口(32位和64位),并且在安装日志中它显示下一行:Execute:"C:\WINDOWS\system32\regsvr32.exe""C:\WINDOWS\system32\mp4mux.dll"//for32-bitissimilar但是,当我尝试使用它时,它不起作
我有一个C++DLL库(我们称它为unmanaged.dll),它围绕着一个托管.NET库(我们称它为managed.dll)。managed.dll使用unmanaged.lib导入/链接unmanaged.dll。我有另一个使用managed.dll的ASP.NETWebAPI项目(我们称该项目为webapi.dll)。现在,每当我构建Web项目时,在输出目录中我都会得到webapi.dll和managed.dll。然后,我手动将unmanaged.dll复制到同一个输出文件夹中,以便(大概).NET可以找到它并加载它。但是,当我尝试运行webapi.dll时,它失败并显示无法加载
在过去的3个小时里,我一直在努力解决这个问题。老实说,我对问这个问题犹豫不决,但似乎我的具体问题不会在任何地方得到回答。所以这是我的情况:TL;DR:如何将新创建的窗口(在代码中或在QtDesigner中)与相应的部分链接起来。意思是,如何链接代码生成的窗口和QtDesigner以及相反的方式?现在我正在VisualStudio2017中使用Qt5开发一个Window应用程序。我希望在单击按钮时打开一个新窗口,然后使用QtDesigner对其进行编辑,就像我在主窗口中所做的那样。(请记住,我主要使用VisualStudio2017进行编程。)我能够做到这一点。但是我不知道如何使用QtD
我刚刚继承了一个有10年历史的项目的维护工作,其中包括将其从VS2005移至VS2015。我大部分时间都在那里,但是当我链接时出现此错误:错误LNK2019:无法解析的外部符号__imp__MessageBoxA@16快速搜索发现这需要user32.lib。当我转到属性->链接器->附加依赖项时,我在继承值下看到该库列表,但它仍然没有链接。当我明确添加硬编码路径和文件名(C:\ProgramFiles(x86)\WindowsKits\8.1\Lib\winv6.3\um\x86\user32.lib)作为另一个依赖项时,它会成功链接...这没关系,我想,但如果没有别的,我依赖那个特定
在Windows上,可以从DLL加载数据,但需要通过导入地址表中的指针进行间接访问。因此,编译器必须知道正在访问的对象是否是使用__declspec(dllimport)从DLL导入的。类型说明符。这很不幸,因为这意味着设计用作静态库或动态库的Windows库的header需要知道程序链接到哪个版本的库。此要求不适用于函数,这些函数是为DLL透明地模拟的,stub函数调用实际函数,其地址存储在导入地址表中。在Linux上,动态链接器(ld.so)将所有链接数据对象的值从共享对象复制到每个进程的私有(private)映射区域。这不需要间接寻址,因为私有(private)映射区域的地址是模
我创建了一个运行3个工作线程的DLL,主线程处于循环中等待线程完成。线程已创建,但未执行线程。我尝试在使用CreateThread()创建的函数中设置MessageBox函数,但该框没有出现。我也尝试过调试,CreateThread()的返回值有效,因此线程被创建。BOOLWINAPIDllMain(){main();return1;}intmain(){HANDLEh1,h2,h3;h1=CreateThread(first)...h2=CreateThread(second)...h3=CreateThread(third)...WaitForSingleObject(h3,INF
我正在开发一个链接到DLL的应用程序,该DLL本身包含一个数据结构,其定义因预处理器定义而异:structExample{uint8_tStringA[32];#ifUSE_Buint8_tStringB[32];#endif};我需要在我的应用程序中的不同时间使用结构的两个版本。因此,我似乎需要使用LoadLibrary加载DLL,其中USE_B未定义用于部分执行(这是标准且直接的),使用FreeLibrary卸载它,然后然后使用定义为非零值的USE_B再次加载它。我不确定如何执行此操作,如有任何帮助,我将不胜感激。 最佳答案 L
由于某种原因,在Windows上的Git存储库中创建的目录符号链接(symboliclink)在推送到Git并重新克隆后变为文件符号链接(symboliclink)。这会导致“目录名称无效”错误。但是,只有当符号链接(symboliclink)在其路径中包含多个子目录时才会发生这种情况。如果只有一个子目录,它们将继续正常工作。此外,它们在Bashshell中仍然可以正常工作。这是原始仓库中的列表:05/01/201907:50AMACN[..\..\acn\Installed]05/01/201908:00AMACNProxy[..\..\acnproxy\bin]04/30/2019
我的应用程序使用ExtractIcon来提取cmd.exe的图标。到目前为止,一切似乎都有效。但是,如果我为我的应用程序创建一个shell链接,该shell链接将具有默认的应用程序图标。我知道如何使用IShellLink::SetIconLocation将cmd.exe的图标手动关联到shell链接(带有cmd.exe的路径>作为pszIconPath和0作为iIcon)现在我想更改我的应用程序,以便为我的应用程序创建的每个shell链接自动接收cmd.exe,0作为图标。我想知道怎么做。 最佳答案 我认为您别无选择,如果有人通过复
如果我有一个被LoadLibrary加载到应用程序(bar.exe)中的dll(foo.dll),我如何从foo.dll中获取字符串“bar.exe”? 最佳答案 将NULL作为第一个参数传递给GetModuleFileName(). 关于windows-如何从dll中获取应用程序名称?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/873770/